#pragma once
#include<iostream>
#include<assert.h>
using namespace std;

typedef int SLTDataType;
typedef struct SListNode
{
	SLTDataType data;
	struct SListNode* next;
}SLTNode;


SLTNode* BuySLTNode(SLTDataType x);
void SListPrint(SLTNode* phead);
void SListDestory(SLTNode** pphead);


void SListPushFront(SLTNode** pphead, SLTDataType x);
void SListPopFront(SLTNode** pphead);

void SListPushBack(SLTNode** pphead, SLTDataType x);
void SListPopBack(SLTNode** pphead);

SLTNode* SListFind(SLTNode* phead, SLTDataType x);

void SListInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x);
void SListInsertAfter(SLTNode** pphead, SLTNode* pos, SLTDataType x);
